<?php
/**
 *
+------------------------------------+
| Overlook [ FAST DEVELOP KIT ]      |
+------------------------------------+
| 2010-2016 (c)                      |
+------------------------------------+
| Author: amamatthew                 |
+------------------------------------+
 * 日    期：2017-08-06
 * 版    本：1.0.0
 * 功能说明：数据转换类。
 * 参    考:
 **/
namespace app\ux;

vendor('phpoffice.phpexcel.Classes.PHPExcel.IOFactory.php');

class UtilPHPExcel
{

    public static function excelToArray($file, $title)
    {

        if (!file_exists($file)) {

            $output['msg']     = "要操作的文件不存在！";
            $output['success'] = false;

            return $output;
        }

        //取文档的类型（与扩展名无关）
        $filetype = \PHPExcel_IOFactory::identify($file);

        //创建 一个特定的读取类
        $excelread = \PHPExcel_IOFactory::createReader($filetype);

        //加载文件
        //$phpexcel = $excelread->load($file, $encode = 'utf-8');
        $phpexcel = $excelread->load($file);

        //读取一个工作表，可以通过索引或名称
        $sheet = $phpexcel->getSheet(0);

        //获取当前工作表的行数
        $rows = $sheet->getHighestRow();

        //获取当前工作表的列（在这里获取到的是字母列），
        $column = $sheet->getHighestColumn();

        //把字母列转换成数字，这里获取的是列的数，并且列的索引
        $columns = \PHPExcel_Cell::columnIndexFromString($column);
        $arr     = [];

        //通过循环把表格中读取到的数据，存入二维数据，以便后期数据库的写入操作，行是从1开始的
        for ($i = 2; $i <= $rows; $i++) {
            $arr_col = [];

            //列是从0开始的
            for ($col = 0; $col < $columns; $col++) {

                //把数字列转换成字母列，这里是通的列索引获取到对应的字母列
                $columnname            = \PHPExcel_Cell::stringFromColumnIndex($col);
                $cell                  = $sheet->getCell($columnname . $i)->getValue();
                $arr_col[$title[$col]] = $cell;
            }
            $arr[] = $arr_col;
        }
        return ($arr);
    }
}
